import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'

Vue.use(Vuex)

// https://webpack.js.org/guides/dependency-management/#requirecontext
const modulesFiles = require.context('./modules', true, /\.js$/)

// 你不需要`import app from './modules/app'`
// 它将自动从模块文件中获取所有 vuex 模块
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
    // set './app.js' => 'app'
    const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
    const value = modulesFiles(modulePath)
    modules[moduleName] = value.default
    return modules
}, {})

const store = new Vuex.Store({
    modules: {...modules},
    getters
})

export default store


/*import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'

Vue.use(Vuex)
export default new Vuex.Store({
    modules: {
        app: require('./modules/app').default,
        errorLog: require('./modules/errorLog').default,
        permission: require('./modules/permission').default,
        settings: require('./modules/settings').default,
        tagsView: require('./modules/tagsView').default,
        team: require('./modules/team').default,
        user: require('./modules/user').default,
    },
    getters
})*/
